# 定义一个函数
# name = "itheima"
# def my_len(data):
#     count = 0
#     for i in data:
#         count += 1
#     print(f"{data}这个字符串的长度是：{count}")
#
# my_len(name)

# def add(x,y):
#     result = x + y
#     print(f"{x} + {y}的计算结果是{result}")
#
# add(2,6)

# def check(data):
#     print("欢迎来到黑马程序员中心，请出示健康码以及72小时核酸证明，并且配合测量体温")
#     if data <= 37.5:
#         print(f"你的体温是：{data}，正常请通过")
#     else:
#         print(f"你的体温是：{data}，需要隔离")
#
# check(38.5)

# 函数返回值案例
# def add(x,y):
#     result = x + y
#     return result
#
# result2 = add(2,6)
# print(result2)

# 默认返回值None
# def test():
#     print("测试")
# # return None 效果等于不写和上面一样
# def test2():
#     print("测试")
#     return None
# result = test()
# print(result)
# print(type(result))

# None 用于if判断
# def check_age(age):
#     if age >= 18:
#         return "SUCCESS"
#     else:
#         return None
#
# result = check_age(16)
# if not result:
#     print("你未成年 ")

# None用于声明无初始值的变量
# name = None

# 定义函数和说明方式

# def add(x,y):
#     """
#     add函数可以接收两个参数，进行两个数相加的功能
#     :param x: 形参x表示相加的其中一个数
#     :param y: 形参y表示相加的另一个数
#     :return: 返回值是2数相加的结果
#     """
#     result = x + y
#     print(f"{x} + {y} 的值是：{result}")
#     return result
#
# add(2,5)

# 演示函数的嵌套调用

# def func_b():
#     print("---2---")
#
# def func_a():
#     print("---1---")
#     func_b()
#     print("---3---")
#
# func_a()


# 案例：全局变量num和局部变量 index
# 定义全局变量num
# num = 100
#
# def testA():
#     # 局部变量
#     index = 20
#     print(num)
#     print(index)
#
# def testB():
#     # 注意这里局部变量num = 500 出了testB作用域变量该局部变量自动销毁
#     num = 500
#     print(num)
#
# testA()
# testB()
# print(num)

# 使用global关键字 可以在函数内部声明变量为全局变量

# num = 100
#
# def testA():
#     print(num)
#
# def testB():
#     # 使用global 关键字声明num是全局变量
#     global num
#     num = 200
#     print(num)
#
# testA()
# testB()
# 定义全局变量 money name
money = 500000
name = None
# 要求输入客户姓名
name = input("请输入您的姓名：")
#定义查询余额函数
def query(show_header):
    if show_header:
        print("-------------查询余额------------")
    print(f"{name},您好，您的余额剩余：{money}元")

# 定义存款函数
def saving(num):
    global money  # money在函数内部定义为全局变量
    money += num
    print("-------------存款------------")
    print(f"{name},您好，您存款{num}元成功。")

    # 调用query函数查询余额
    query(False)

# 定义取款函数
def get_money(num):
    global money
    money -= num
    print("-------------取款------------")
    print(f"{name},您好，您取款{num}元成功。")

    # 调用query函数查询余额
    query(False)
# 定义主菜单函数
def main():
    print("-------------主菜单------------")
    print(f"{name},n您好，欢迎来到黑马银行ATM。请选择操作：")
    print("查询余额\t[输入1]")
    print("存款\t\t[输入2]")
    print("取款\t\t[输入3]") # 通过\t制表符对齐输出
    print("退出\t\t[输入4]")
    return input("请输入您的选择：")
# 设置无限循环，确保程序不退出
while True:
    keyboard_input = main()
    if keyboard_input == "1":
        query(True)
        continue  # 通过continue继续下一次循环，一进来就是回到了主菜单
    elif keyboard_input == "2":
        num = int(input("你想存多少钱？请输入："))
        saving(num)
        continue
    elif keyboard_input == "3":
        num = int(input("你想钱多少钱？请输入："))
        get_money(num)
        continue
    elif keyboard_input == "4":
        print("程序退出啦")
        break       # 通过break退出循环